//package com.learn.config;
//
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.boot.context.properties.bind.ConstructorBinding;
//import org.springframework.stereotype.Component;
//
//import java.net.InetAddress;
//import java.util.ArrayList;
//import java.util.Collections;
//import java.util.List;
//
///**
// *
// *
// *  TODO 这个代码如果指定使用无参的构造函数，最后的还是有结果，就不确定是理解错误，还是配置错误
// * @author: hbliy
// * @date: 2025/11/6 13:40
// *
// *
// */
//
//@Component
//@ConfigurationProperties(prefix = "my2.service")
//public class ConstructorBindingBean {
//
//    public ConstructorBindingBean() {
//    }
//
//    @ConstructorBinding
//    public ConstructorBindingBean(boolean isEnabled, InetAddress remoteAddress, Integer number) {
//        System.out.println("ConstructorBindingBean.ConstructorBindingBean");
//        this.isEnabled = isEnabled;
//        this.remoteAddress = remoteAddress;
//        this.number = number;
//    }
//
//
//    private boolean isEnabled;
//
//    private InetAddress remoteAddress;
//
//    private Integer number;
//
//    private final Security security = new Security();
//
//    class Security {
//
//
//        private String username;
//
//        private String password;
//
//        private List<String> roles = new ArrayList<>(Collections.singleton("USER"));
//
//        public String getUsername() {
//            return username;
//        }
//
//
//        public String getPassword() {
//            return password;
//        }
//
//
//        public List<String> getRoles() {
//            return roles;
//        }
//
//
//        @Override
//        public String toString() {
//            return "Security{" +
//                    "username='" + username + '\'' +
//                    ", password='" + password + '\'' +
//                    ", roles=" + roles +
//                    '}';
//        }
//    }
//
//
//    public boolean isEnabled() {
//        return isEnabled;
//    }
//
//    public InetAddress getRemoteAddress() {
//        return remoteAddress;
//    }
//
//    public Security getSecurity() {
//        return security;
//    }
//
//    public Integer getNumber() {
//        return number;
//    }
//
//    @Override
//    public String toString() {
//        return "ConstructorBindingBean{" +
//                "isEnabled=" + isEnabled +
//                ", remoteAddress=" + remoteAddress +
//                ", number=" + number +
//                ", security=" + security +
//                '}';
//    }
//}
